/**
 * @file Misc.h
 * @brief Miscellaneous programmer functions in GDR
 * @author Matt Stallmann @date 28 Nov 2001
 * $Id: Misc.h 10 2007-06-28 20:08:57Z mfms $
 */

/*
 *  Copyright (C) 1989, 2001, 2007  Matthias Stallmann, Prashant Hebbar.
 *  Contact: matt_stallmann@ncsu.edu
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License along
 *  with this program (file COPYING.txt); if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
 *  USA.
 */

extern void animat(void);
/**< function called from GDR to invoke programmer-defined animation */

extern void suspend_animation(void);
/**< gives control back to edit mode; program execution is resumed when user
   clicks left in the  RESUME ? window or presses  q or  Q */

extern void audio_bell(int duration);
/**< beep for the indicated duration (number of individual occurrences of the
   alarm signal (but they sound like one continuous beep); used by the BEEP
   macro in Macros.h */

extern void blink_vertex(vertex vx, int count);
/**< causes vx to blink 'count' times */

extern void blink_edge(edge ej, int count);
/**< causes ej to blink 'count' times */

extern int get_xy_from_mouse(int *ax, int *ay);
/**< "return" coordinates of next mouse click (via reference arguments);
   return FALSE if ^C is pressed, TRUE otherwise */

extern vertex select_vertex(void);
/**< return the index of a vertex selected by the next mouse click, or
   NULL_VERTEX if the next click fails to select a vertex */

extern int query(int x, int y, char *msg, char *ans);
/**< puts up a query box and waits for user to type an answer followed by
   'Return/Enter'; 'msg' is the message put into the box, 'ans' is the
   answer typed by the user, (x,y) is the position of the upper-left corner
   of the box; returns TRUE iff not aborted by Ctrl-C (message must fit on
   a single line) */

extern void popup_message(int x, int y, char * message);
/**< pop up a text window and prompt user to hit any key to continue (useful
   for alerting user to nonfatal errors) */

extern void dump_graph(void);
/**< prints a logical representation of the graph on standard output (for
   debugging) */

/** end of Misc.h **/

/*  [Last modified: 2007 06 28 at 19:25:05 GMT] */
